package com.kingyea.mobilepolice.organization.dao;

import com.kingyea.mobilepolice.organization.bean.Organization;
import com.kingyea.mobilepolice.organization.bean.OrganizationCondition;
import com.kingyea.mobilepolice.util.BasePage;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

/**
 * @author Mr.Lin
 * @version v1.0.0
 * @description OrganizationMapper
 * @date Created in 2018-03-30 15:26:51
 */
public interface OrganizationMapper {

    /**
     * 通过ID获取对象
     */
    Organization getById(@Param("orgId") Integer orgId);

    /**
     * 通过SerialNo唯一序列号获取对象
     */
    Organization getBySerialNo(@Param("serialNo") String serialNo);

    /**
     * 通过条件获取数据
     */
    List<Organization> queryByCondition(OrganizationCondition condition);

    /**
     * 通过ID删除对象
     */
    int deleteById(@Param("orgId") Integer orgId);

    /**
     * 更新对象
     */
    int update(Organization obj);

    /**
     * 保存对象
     */
    int save(Organization obj);

    /**
     * 查询列表
     */
    List<Organization> search(BasePage<?> condition);

    /**
     * 查询父级部门
     *
     * @return
     */
    List<Organization> parentDeptList();


    /**
     * @param map
     * @return
     */
    List<Organization> getSonDeptBySno(Map<String, Object> map);

    /**
     * 查询所在部门的下级部门
     * @param orgSerialNo
     * @return
     */
    List<Organization> getMyDept(String orgSerialNo);

    /**
     * 获取部门名称
     * @param orgSerialNo
     * @return
     */
    String getByDeptName(String orgSerialNo);

    /**
     * 获取最高级部门
     * @return
     */
    Organization getparentDept();

    /**
     * 通过部门名称模糊查询
     * @param organization
     * @return
     */
    List<Organization> searchByName(Organization organization);
}
